#ifndef COMMON_HPP
#define COMMON_HPP

// C libraries
#include <cerrno>
#include <climits>
#include <cfloat>
#include <cmath>
#include <cstdlib>

#include <numeric>
#include <stdexcept>
#include <string>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <utility>
#include<iostream>
#include <algorithm>
#include <boost/function.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/array.hpp>
//#include <blitz/array.h>
//#include <blitz/tinyvec-et.h>
//#include "randutil.hpp"
//#include "clone.hpp"

using std::cin;
using std::cout;
using std::cerr;
using std::endl;
using std::string;
using std::vector;
using std::list;
using std::map;
using std::set;
using std::pair;
//using boost::make_tuple;
//using boost::tuple;
using boost::shared_ptr;
using boost::weak_ptr;
//using blitz::TinyVector;
using boost::array;

const int max_strlen = 16;

typedef boost::function<double (const double&)> distFnPtr;

#endif
